package com.manage.generator.service;

import com.manage.generator.domain.GenTemplate;

import java.util.List;
import java.util.Map;

/**
 * @description: 代码生成模板Serivice
 * @author: 喵师傅
 * @date: 2024/2/7 14:56
 */
public interface GenTemplateService {

    /**
     * 分页条件查询数据
     *
     * @param codeTemplate 查询参数
     * @return 查询结果
     */
    List<GenTemplate> selectTemplateList(GenTemplate codeTemplate);

    /**
     * 保存模板
     *
     * @param po 模板文件
     */
    int insertTemplate(GenTemplate po);

    /**
     * 编辑
     *
     * @param po 实体
     */
    int updateTemplate(GenTemplate po);

    /**
     * 删除
     *
     * @param id     要删除的id
     */
    int deleteTemplateById(Long id);

    /**
     * 保存模板参数
     *
     * @param template 模板
     */
    int saveTemplateParams(GenTemplate template);

    /**
     * 预览代码
     *
     * @param templateList 模板集合
     * @return 代码生成结果
     */
    Map<String, String> previewCode(List<GenTemplate> templateList);

    /**
     * 生成代码(压缩包)
     *
     * @param templateList 模板集合
     * @return 代码生成结果
     */
    byte[] generateCodeFile(List<GenTemplate> templateList);


    /**
     * 校验模板名称是否唯一
     * @param po 模板
     * @return 查询结果
     */
    boolean checkTemplateNameUnique(GenTemplate po);

}
